package com.baturu.vin.hyundai.dal.entity;

import com.baturu.vin.hyundai.dto.HyundaiAttributeEntity;
import com.baturu.vin.hyundai.dto.MajorOptionDTO;
import com.baturu.vin.hyundai.service.impl.HyundaiModelDetailUtil;
import lombok.*;
import lombok.experimental.FieldDefaults;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

@NoArgsConstructor
@AllArgsConstructor
@Builder
@FieldDefaults(level = AccessLevel.PRIVATE)
public class HyundaiKiaModelDetailEntity {
    /**
     * epc品牌标识
     */
    @Getter
    @Setter
    String epcBrand;
    /**
     * 地区简称
     */
    @Getter
    @Setter
    String region;
    /**
     * 地区全称
     */
    @Getter
    @Setter
    String area;
    /**
     * 类型
     */
    @Getter
    @Setter
    String segment;
    /**
     * 车型名
     */
    @Getter
    @Setter
    String model;
    /**
     * 车型编码
     */
    @Getter
    @Setter
    String bpno;
    /**
     * 开始年
     */
    @Getter
    @Setter
    String startYear;
    /**
     * 结束年
     */
    @Getter
    @Setter
    String endYear;
    /**
     * ？？？
     */
    @Getter
    @Setter
    String hsgb;
    /**
     * 从content扣出来的属性
     */
    @Getter
    @Setter
    String attribute;
    /**
     * bpno下的明细数据
     */
    @Getter
    @Setter
    String content;
    /**
     * bpno下的明细数据
     */
    List<String> contentList;
    /**
     * bpno下的明细数据转化为List
     */
    public List<String> getContentList () throws Exception {
        if (contentList != null) {
            return new ArrayList<>(contentList);
        }
        contentList = HyundaiModelDetailUtil.getContentList(bpno,content);
        return new ArrayList<>(contentList);
    }
    /**
     * 车型属性
     */
    public String getModelAttribute() throws Exception {
        List<String> contentList = getContentList();
        return HyundaiModelDetailUtil.getModelAttribute(contentList);
    }
    /**
     * 关键属性
     */
    public MajorOptionDTO getMajorOption () throws Exception {
        List<String> contentList = getContentList();
        return HyundaiModelDetailUtil.getMajorOption(contentList);
    }
    /**
     * 非关键属性
     */
    public Set<HyundaiAttributeEntity> getMinorAttributes() throws Exception {
        List<String> contentList = getContentList();
        return HyundaiModelDetailUtil.getMinorAttribute(contentList);
    }
}